package org.lanyu.springainovel.novel.service;

import com.baomidou.mybatisplus.extension.service.IService;
import org.lanyu.springainovel.novel.entity.Inspiration;

import java.util.List;

/**
 * 灵感服务接口
 */
public interface InspirationService extends IService<Inspiration> {
    
    /**
     * 根据用户ID获取灵感列表
     * 
     * @param userId 用户ID
     * @return 灵感列表
     */
    List<Inspiration> getInspirationsByUserId(Long userId);
    
    /**
     * 根据书籍ID获取灵感列表
     * 
     * @param bookId 书籍ID
     * @return 灵感列表
     */
    List<Inspiration> getInspirationsByBookId(Long bookId);
    
    /**
     * 创建灵感
     * 
     * @param inspiration 灵感信息
     * @return 创建的灵感
     */
    Inspiration createInspiration(Inspiration inspiration);
    
    /**
     * 更新灵感信息
     * 
     * @param inspiration 灵感信息
     * @return 更新后的灵感
     */
    Inspiration updateInspiration(Inspiration inspiration);
    
    /**
     * 根据ID获取灵感
     * 
     * @param id 灵感ID
     * @return 灵感信息
     */
    Inspiration getInspirationById(Long id);
    
    /**
     * 根据标签查询灵感
     * 
     * @param tags 标签
     * @return 灵感列表
     */
    List<Inspiration> getInspirationsByTags(String tags);
    
    /**
     * 根据用户ID和标签查询灵感
     * 
     * @param userId 用户ID
     * @param tags 标签
     * @return 灵感列表
     */
    List<Inspiration> getInspirationsByUserIdAndTags(Long userId, String tags);
    
    /**
     * 获取热门灵感
     * 
     * @param limit 限制数量
     * @return 灵感列表
     */
    List<Inspiration> getHotInspirations(int limit);

}